package com.cqupt.mapper;

import com.cqupt.pojo.User;
import com.cqupt.pojo.UserExample;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    /**
     *
     * @param example
     * @return
     */
    long countByExample(UserExample example);

    /**
     *
     * @param example
     * @return
     */
    int deleteByExample(UserExample example);

    /**
     * 依据用户id删除用户
     * @param userId
     * @return
     */
    int deleteByPrimaryKey(String userId);

    /**
     * 新增用户信息
     * @param record
     * @return
     */
    int insert(User record);

    /**
     *
     * @param record
     * @return
     */
    int insertSelective(User record);

    /**
     *
     * @param example
     * @return
     */
    List<User> selectByExample(UserExample example);

    /**
     * 依据用户id查询用户信息
     * @param userId
     * @return
     */
    User selectByPrimaryKey(String userId);

    /**
     *
     * @param record
     * @param example
     * @return
     */
    int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);

    /**
     *
     * @param record
     * @param example
     * @return
     */
    int updateByExample(@Param("record") User record, @Param("example") UserExample example);

    /**
     *
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(User record);

    /**
     * 更新用户信息
     * @param record
     * @return
     */
    int updateByPrimaryKey(User record);

    /**
     *
     * @param user
     * @return
     */
    List<Map<String, Object>> login(User user);

    /**
     * 获得用户名
     * @param username
     * @return
     */
    Map<String, Object> getNameAndPwd(@Param("username")String username);

    /**
     *
     * @param userId
     * @param status
     * @return
     */
    int setUserStatus(@Param("userId")String userId, @Param("status")String status);

    /**
     *
     * @param userId
     * @return
     */
    String selectStatusByPrimaryKey(String userId);
}
